package br.unicamp.ic.sgct.client.aplicacao.usuario;

import br.unicamp.ic.sgct.client.dominio.to.ParticipanteTO;
import br.unicamp.ic.sgct.client.dominio.to.UsuarioTO;

import com.google.gwt.user.client.rpc.AsyncCallback;
import java.util.List;

/**
 * The async counterpart of <code>RegistrarUsuarioService</code>.
 */
public interface UsuarioServiceAsync {

    public void inscrever(UsuarioTO usuario, Long idConferencia, AsyncCallback<UsuarioTO> asyncCallback);

    void obterUsuario(AsyncCallback<UsuarioTO> callback);

    public void obterParticipanteConferencia(Long idConferencia, AsyncCallback<ParticipanteTO> asyncCallback);

    public void obterParticipacoesConferencia(Long idConferencia, AsyncCallback<List<UsuarioTO>> asyncCallback);

    public void obterUsername(AsyncCallback<String> asyncCallback);

    public void temPerfil(String perfil, AsyncCallback<java.lang.Boolean> asyncCallback);

    public void obterParticipantesConferencia(Long idConferencia, AsyncCallback<List<ParticipanteTO>> asyncCallback);

    void cancelar(UsuarioTO usuario, AsyncCallback<Void> callback);
}
